package com.baidu.sggc.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * <p>
 * 模型信息表
 * </p>
 *
 * @author lianglin
 * @since 2025-02-13
 */
@Data
@TableName("model_info")
@Schema(name = "ModelInfo对象", description = "模型信息表")
public class ModelInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 模型ID
     */
    @Schema(description = "模型ID")
    private String modelId;

    /**
     * 模型名
     */
    @Schema(description = "模型名")
    private String modelName;

    /**
     * 模型头像
     */
    @Schema(description = "模型头像")
    private String modelImageUrl;

    /**
     * 模型简介
     */
    @Schema(description = "模型简介")
    private String modelBrief;

    /**
     * 模型试用地址
     */
    @Schema(description = "模型试用地址")
    private String modelUseUrl;

    /**
     * 项目ID
     */
    @Schema(description = "所属项目ID")
    private String projectId;

    /**
     * 技术类型
     */
    @Schema(description = "技术类型")
    private String techType;

    /**
     * 领域类型
     */
    @Schema(description = "领域类型")
    private String areaType;

    /**
     * 框架类型
     */
    @Schema(description = "框架类型")
    private String frameworkType;

    /**
     * 数据类型
     */
    @Schema(description = "数据类型")
    private String dataType;

    /**
     * 开源协议
     */
    @Schema(description = "开源协议")
    private String license;

    /**
     * 标签，逗号分隔
     */
    @Schema(description = "标签，多个标签以逗号分隔")
    private String tags;

    /**
     * 扩展字段，模型信息
     */
    @Schema(description = "扩展字段，存储模型的额外信息（JSON格式）")
    private String extJson;

    /**
     * 扩展字段对象，解析 `extJson` 的对象表示
     */
    @TableField(exist = false)
    @Schema(description = "扩展字段对象，解析 `extJson` 的对象表示")
    private ModelInfoExt extJsonObject;

    /**
     * 是否删除：0-未删除，1-已删除
     */
    @Schema(description = "是否删除：0-未删除，1-已删除")
    private Integer isDel;

    /**
     * 创建人，-1（系统）
     */
    @Schema(description = "创建人ID，-1表示系统")
    private String createId;

    /**
     * 更新人
     */
    @Schema(description = "更新人ID")
    private String updateId;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 用户名
     */
    @TableField(exist = false)
    private String userName;


}
